1. Field of the Invention
The invention relates generally to zoning serial attached SCSI (SAS) expanders and more specifically relates to improved apparatus and methods within a zoning SAS expander for dual device lookup for zone permissions (also referred to as full address resolution).
2. Discussion of Related Art
SAS domains provide a popular architecture for coupling one or more initiator devices (e.g., computing systems, servers, and storage controllers) to one or more target devices (e.g., storage devices). A SAS domain generally includes one or more SAS initiator devices coupled to one or more SAS target devices through zero or more SAS expanders. SAS expanders provide a plurality of physical ports (PHYs) coupled to a related group of initiator and target devices to permit dynamically switched access among the coupled devices. Further, a SAS expander port may be coupled to a port of another expander to further expand the flexibility and number of devices that may be configured in the SAS domain.
SAS expanders generally operate as switches/routers to allow flexibility in dynamically coupling any of the one or more initiators to any of the one or more targets. SAS frames are generated in an initiator device and forwarded to the port of an expander with which the initiator is directly coupled. SAS addressing information (i.e., worldwide unique names—WWN) in the SAS frame identifying the source device (the SAS initiator) and the destination device (the SAS target) are used by the SAS expander to determine which port to use for forwarding the frame toward the ultimate destination device. A routing table stored in a memory of the expander may be used to translate the WWN for the destination device into a particular port/PHY to which the received frame is forwarded.
SAS standards also include a feature called “zoning”. In zoning, an expander includes a zone permission table that indicates whether the source device identified in the received frame is allowed to connect with the destination device identified in the received frame. One or more zone groups are defined such that devices are configured as members of one or more of the defined zone groups and devices in a first group are configured in the zone permission table to allow or disallow access to devices in other groups.
As presently defined by the SAS standards the zone group of a destination device is determined by a lookup table within the expander (e.g., the routing table may be enhanced with zoning information). Such a lookup table is used by the SAS expander to determine, for example, the zone group assigned to the destination device and the port/PHY through which the received frame is to be forwarded to reach the destination device. The zone group assigned to the source device of the frame is simply determined by the port/PHY on which the frame is received or from the zone group specified as the source zone group in the received frame. The zone permission table, as presently specified in the SAS standards, is then used to map the source and destination zone groups so determined to determine whether permission is granted for the received frame to be forwarded through the expander to the destination device. Thus as presently practiced, zoning expanders resolve only the destination device identifier in a received frame through use of the lookup table (i.e., routing table) to determine the ultimate zone permission. The zone group of the source device is not determined by any mapping of the source device address but rather is determined solely from the port on which a frame is received or from the information in the received frame.
Limitations of presently specified zoning operations of a SAS expander are limited in that a zoning SAS expander (i.e., in a first zoned portion of a service delivery subsystem—ZPSDS) cannot fully resolve the zone permissions for end devices coupled through a non-zoned expander. For example, a zoning expander in accordance with present SAS standards may be coupled to an older (“legacy”) enclosure of storage devices with an internal expander (e.g., just a box of disks—JBOD) that is not capable of zoning. Under present SAS standards, all devices in that legacy enclosure must be associated with the same zone group. No further granularity of the zone groups is possible.
It has been proposed that SAS standards be improved to call for (optional) full address resolution for zoning permission determination. In other words, it has been proposed to standardize a feature in a SAS expander that uses the WWN of both the source and destination devices (as provided in a received SAS frame) to be resolved and to thereby determine zone permission regardless of the port/PHY on which the frame is received and regardless of the zone groups identified in the received frame information. However, no such standard has yet been adopted. More importantly, no cost-effective, simple solution has yet been proposed to provide for such a full address resolution in a zoning SAS expander.
Thus it is an ongoing challenge to provide full address resolution in a zoning SAS expander in a simple, cost-effective manner.